package org.dromara.comm_lhz.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.dromara.comm_lhz.entity.AsPointsManagementEntity;
import org.dromara.comm_lhz.param.PointsPageParam;
import org.springframework.data.domain.Pageable;
import org.dromara.comm_lhz.util.Result;

/**
 * 积分管理服务接口
 * 继承了IService<AsPointsManagementEntity>，提供了对AsPointsManagementEntity实体的CRUD操作
 */
public interface AsPointsManagementHService extends IService<AsPointsManagementEntity> {
    /**
     * 查询积分信息
     *
     * @param pageable 分页查询参数对象，包含页码、每页数量等信息
     * @return 分页数据对象，包含查询到的积分信息列表和分页相关数据
     */
    Page<AsPointsManagementEntity> selPoints(String nickName, Pageable pageable);

    /**
     * 新建用户积分信息
     *
     * @param asPointsManagementEntity 待插入的积分信息实体
     * @return 插入操作影响的行数
     */
    int insert(AsPointsManagementEntity asPointsManagementEntity);

    /**
     * 根据ID更新用户积分信息
     *
     * @param asPointsManagementEntity 待更新的积分信息实体
     * @return 更新操作是否成功
     */
    boolean updatePointsById(AsPointsManagementEntity asPointsManagementEntity);

    /**
     * 根据用户ID更新用户积分信息 用户消费
     * @param userId
     * @param sumPrice
     */
    Result updatePointsPay(Long userId, Double sumPrice);
}
